Computer graphic operations that are initiated by pointing devices are typically two types: drawing operations and control operations. Drawing operations describe loci for the generation and display of visible marks or other functions on the image, analogous to drawing on a piece of paper by making a motion with a pen in contact with the surface. Control operations are used to initiate and guide the execution of computer functions leading to modification of the visible marks. Control operations are especially important to the performance of editing functions such as erasing, moving, or changing the visual qualities (e.g. line width) of visible marks of the image.
With most user interface systems, control functions are generally instituted by giving commands to the system (e.g., keyboard command languages, menuing techniques, etc.). Giving commands can be simplified into two parts: specifying (creating or selecting) the command and issuing it, i.e., telling the system to "execute it." Often times users specify, commands they wish to change, adjust or abort before they are issued to the system.
In keyboard command languages, the command is typed in and then issued with the Return or enter key. Usually, the commands can be edited before they are issued. If no specified control key is available to edit the command then the backspace can be used. Often times the whole specified command can be cleared by some control key. In menus, the user can move about the menu selecting or deselecting different items. Even when the menus are hierarchic, it is possible to descend and ascend in the menu hierarchy before selecting an item. An item is issued by the user pressing or lifting a button on the pointing device. If the user does not want to issue any of the items on the menu, the pointing device is moved off of the menu, (called a null selection) before the issuing action.
In gesture-based input systems such as a pen-based notebook computer or a Liveboard (trademark of Xerox Corporation) or a graphical user interface using a mouse, control operations on specific objects entered in the system are given by commands called gestures. A gesture is a hand-drawn command, and it is a mark created with a stylus input device that is interpreted by the system as designating an action for the system to perform. Objects are input into the system by simply drawing ("inking") freehand marks. Such marks are then data objects in the system.
In order to institute a simple control command by gesture, the user would draw a gesture which represents some desired function and then commit to the command by lifting the input device (e.g. stylus) from the input surface of a display or a button on the device (e.g. mouse). That is, the completed gesture is sensed and after lifting the stylus from the input surface of the display the computer is instructed to execute the particular command. However, if the user sees that a partially drawn gesture is incorrect, he has no recourse but to issue the command, e.g., lift the stylus, and hope the gesture drawn is not harmful to what is actually drawn before redrawing the gesture correctly.
In a gesture based input system, it is desirable to allow the user to redraw or abort an incomplete gesture.